package com.ck.dao;

import com.ck.model.common.SceneMiddle;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 场景中
 *
 * @author linqiang
 * @date 2018-07-02 09:40
 */
public interface SceneMiddleMapper {
    /**
     * 根据主键删除场景中
     *
     * @param sceneId 场景中主键
     * @return 影响行数
     */
    int deleteByPrimaryKey(Long sceneId);

    /**
     * 新增场景中
     *
     * @param record 新增的场景中
     * @return 影响行数
     */
    int insert(SceneMiddle record);

    /**
     * 新增场景中（字段值不为空的）
     *
     * @param record 新增的场景中
     * @return 影响行数
     */
    int insertSelective(SceneMiddle record);

    /**
     * 根据主键查询单个场景中
     *
     * @param sceneId 场主键
     * @return 场景中
     */
    SceneMiddle selectByPrimaryKey(Long sceneId);

    /**
     * 根据主键个更新场景中（不为空的字段）
     *
     * @param record 更新的场景中
     * @return 影响行数
     */
    int updateByPrimaryKeySelective(SceneMiddle record);

    /**
     * 根据主键更新场景中
     *
     * @param record 更新的场景中
     * @return 影响行数
     */
    int updateByPrimaryKey(SceneMiddle record);

    /**
     * 根据场景版本号删除场景中
     *
     * @param sceneVersion 场景版本号
     * @return 影响行数
     */
    int deleteBySceneVersion(String sceneVersion);

    /**
     * 批量插入
     *
     * @param sceneMiddleList 数据集合
     * @return 影响行数
     */
    int batchInsert(@Param("sceneMiddleList") List<SceneMiddle> sceneMiddleList);

    /**
     * 根据节目版本号批量删除场景中
     *
     * @param programVersion 节目版本号
     * @return 影响行数
     */
    int batchDeleteByProgramVersion(@Param("programVersion") String programVersion);

    /**
     * 根据节目版本号查询节目中集合
     *
     * @param sceneVersion 节目版本号
     * @return List<SceneMiddle>
     */
    List<SceneMiddle> listBySceneVersion(@Param("sceneVersion") String sceneVersion);

    /**
     * 根据url统计数量
     *
     * @param url              路径
     * @param sceneVersionList 场景版本号集合
     * @return 统计数量
     */
    int countByUrlAndSceneVersion(@Param("url") String url, @Param("sceneVersionList") List<String> sceneVersionList);
}